package cn.xeblog.plugin.factory;

import cn.xeblog.commons.enums.Game;
import cn.xeblog.plugin.annotation.DoGame;
import cn.xeblog.plugin.game.AbstractGame;

/**
 * 游戏工厂
 *
 * @author anlingyi
 * @date 2021/8/21 9:33 下午
 */
public class GameFactory {

    /**
     * 单例，实例化的同时也注册了@DoGame注解相关服务
     */
    private static ObjectFactory objectFactory = new ObjectFactory(DoGame.class);

    /**
     * 生产游戏对象
     *
     * @param game 游戏
     * @return 游戏抽象类
     */
    public static AbstractGame produce(Game game) {
        // 生产对象
        return (AbstractGame) objectFactory.produce(game);
    }
}
